<template>
  <div class="count">
    <h2>当前求和为：{{ sum }}</h2>
    <select v-model="n">
      <option :value="1">1</option>
      <option :value="2">2</option>
      <option :value="3">3</option>
    </select>
    <button @click="add">加</button>
    <button @click="minus">减</button>
  </div>
</template>
<script lang="ts" setup name="Count">
import { shallowRef } from "vue";
import { useCountStore } from "@/store/count";
import { storeToRefs } from "pinia";

const countStore = useCountStore()
console.log('countStore', countStore)
// storeToRefs 只对store中是数据包成响应式，而方法不会
const {sum} = storeToRefs(countStore)
// 用户选择的数字
const n = shallowRef(1);

const add = () => {
  // 第一种写法 直接修改值
  // countStore.sum += n.value

  // 第二种写法
  // countStore.$patch({
  //   sum: 10
  // })

  // 第三种写法，借助actions 将代码提取出来，可以进行复用
  countStore.increment(n.value)
}
const minus = () => {
  countStore.decrement(n.value)
}
</script>
<style scoped>
.count {
  background-color: skyblue;
  padding: 10px;
  border-radius: 10px;
  box-shadow: 0 0 10px;
}
select,
button {
  margin: 0 5px;
  height: 25px;
}
</style>
